Hugging Face Datasets
Datasets 是一个数据集管理库。能够一行代码加载数据集,进行数据处理,以便在深度学习模型中进行训练。
该库基于 Apache Arrow 格式,可以处理大型数据集,而无需担心内存限制,以实现最佳的速度和效率。
此外,Datasets 还与 Hugging Face Hub 有深度集成,允许你轻松地加载和与更广泛的机器学习社区共享数据集。
加载数据集
Hugging Face Hub 上托管有大量公开数据集。
load_dataset_builder
加载数据集信息,不下载数据集:
from datasets import load_dataset_builder
ds_builder = load_dataset_builder("rotten_tomatoes")
ds_builder.info.description
ds_builder.info.features
load_dataset
下载数据集:
from datasets import load_dataset
dataset = load_dataset("rotten_tomatoes", split="train")
访问数据集
索引:
dataset[0]
dataset[-1]
# 按列名索引
dataset["text"]
dataset[0]["text"]
切片:
dataset[:3]
dataset[3:6]
遍历:
from datasets import load_dataset
iterable_dataset = load_dataset("food101", split="train", streaming=True)
for example in iterable_dataset:
print(example)
break
文本预处理
模型无法处理原始文本,因此首先需要通过 Tokenization 将文本转为 Token,而 Token 则由向量表示。
tokenizer 输出:
tokenizer(dataset[0]["text"])
{'input_ids': [101, 1103, 2067, 1110, 17348, 1106, 1129, 1103, 6880, 1432, 112, 188, 1207, 107, 14255, 1389, 107, 1105, 1115, 1119, 112, 188, 1280, 1106, 1294, 170, 24194, 1256, 3407, 1190, 170, 11791, 5253, 188, 1732, 7200, 10947, 12606, 2895, 117, 179, 7766, 118, 172, 15554, 1181, 3498, 6961, 3263, 1137, 188, 1566, 7912, 14516, 6997, 119, 102],
'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}
其中:
input_ids
:代表文本中 Token 的数字。token_type_ids
:如果有多个序列,则表示该 token 属于哪个序列。attention_mask
:指示是否应屏蔽 Token。
批量加速 Tokenization 的写法,将 batched
参数设置为 True
:
def tokenization(example):
return tokenizer(example["text"])
dataset = dataset.map(tokenization, batched=True)
网络资源
本文作者:Maeiee
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!